
public class Stack <E>
{
    private Object[] elementos;
    private int disponible;
    private int actual;

    public Stack (int cantidad)
    {
        elementos = new Object[cantidad];
        for(int i = 0; i < elementos.length; i++)
        {
        	elementos[i] = "null";
        }
        disponible = 0;
        actual=0;
    }
    
    public void guardar (E carro)
    {
	    if(actual == 0)
	    {
	    	elementos[0] = carro;
	    	actual++;
	    	disponible++;
	    }
	    else
	    {
	    	if(Empty())
	    	{
	    	 elementos[disponible] = carro;
	    	 disponible++;
	    	 actual++;
	    	}
	    }//end
    }//end

    public boolean Empty()
    {
    	if(actual < elementos.length)
    	{
    		return true;
    	}
    	else
    	{
    		return false;
    	}
    }

    public String showElements()
    {
    	String cad = "";
    	for(int i = 0; i < elementos.length; i++)
    	{
    		cad += Integer.toString(i+1) +": Dato: "+elementos[i]+"\n";
    	}//end
    	return cad;
    }//end
    
    public int sizeStack()
    {
    	return elementos.length;
    }
    
    public E elemento (int posicion)
    {
    	return (E)elementos[posicion];
    }

    public void Sacar(E carro)
    {
    	int i = 0;
    	boolean find = false;
    	if(actual >= 0){
	    	while((i < elementos.length)&&(!find))
	    	{
	    		if(elementos[i].equals(carro))
	    		{
	    			find = true;
	    			elementos[i] = "null";
	    			actual--;
	    		}//end
	    		i++;
	    	}//end
	    	ordenar();
    	}//end
    }//end

    public void ordenar()
    {
    	int i = 0;
    	boolean fin = false;
    	while((i < elementos.length)&&(!fin))
    	{
    		if(elementos[i].equals("null"))
    		{
    			if((i+1) < elementos.length)
    			{
    				elementos[i] = elementos[i+1];
    				elementos[i+1] = "null";
    			}//end
    			else
    			{
    				disponible = i;
    				fin = true;
    			}
    		}//end
    		i++;
    	}//end
    }//end
}